/*
 * @lc app=leetcode.cn id=53 lang=cpp
 *
 * [53] 最大子序和
 */

// @lc code=start
class Solution
{
public:
    int maxSubArray(vector<int> &nums)
    {
        // 考虑到全负数的情况引入res
        int res = INI_MIN, s = 0;
        for (auto x : nums)
        {
            // x为遍历的当前节点， s为上一个节点的最大连续子序和
            if (s <= 0)
                s = x;
            else
                // s更新为当前节点的最大子序和
                s += x;
            // 考虑到全负数的情况,res为当前节点的最大连续子序和
            res = max(res, s);
        }
        return res;
    }
};
// @lc code=end
